本篇勘誤內容在:
我以前都不知道php不同的版本到底有什麼差別,
直到最近聽說有其他人的網站因為php版本升級結果,
一些購物車,會員登入系統都故障了!!
怎麼這麼嚴重泥~
主機商也只是給了一個內容全英文又落落長的網頁叫客戶自己“參考”!!
噢買尬,
經過這次的經驗,雖然我學到的東西很有限,
不過也可以知道一個點,
就先從addslashes()這個函數說起吧!
以前的 php為了防止輸入內容的時候被駭客順便輸入一堆指令碼寫入資料庫
所以都會在接收客戶輸入內容的時候,
把引號的字串加上斜線,
這就是addslashes()這個函數的功能,
在舊版的時候,預設是支援這個功能的,
也就是magic_quotes_gpc = On
但是php5.3之後,預設就是magic_quotes_gpc = Off
所以對於頁面還是採取addslashes()函數的時候
主機就會顯示找不到函數之類的錯誤
所以要自己去手動打開這項功能,到phprc裡面加入
magic_quotes_gpc = On
就可以支援addslashes()函數嘍~
這樣可以把使用者輸入的字串結尾加個斜線再寫入資料庫
同時也學到了另一個設定:
magic_quotes_runtime = Off
這個設定是專門把資料從資料庫寫出的時候加上斜線,
不過我們不需要這個功能,所以設成Off就可以了
學到了一課:
magic_quotes_gpc = On (讀入的加上slash)
magic_quotes_runtime = Off (讀出的加上slash)